# 汇率常量（以2023年12月典型汇率为准）
USD_TO_CNY_RATE = 7.0  # 1美元兑换人民币汇率
CNY_TO_USD_RATE = 1 / USD_TO_CNY_RATE  # 人民币兑换美元汇率

def main():
    print("汇率兑换程序 v1.0")
    print("=" * 30)
    
    while True:
        # 输入验证循环 - 金额部分
        while True:
            amount_str = input("\n请输入要兑换的金额（输入Q退出）: ").strip()
            if amount_str.upper() == 'Q':
                print("\n感谢使用，再见！")
                return
            
            try:
                amount = float(amount_str)
                if amount <= 0:
                    print("错误：金额必须大于0")
                    continue
                break
            except ValueError:
                print("错误：请输入有效的数字（例如：100 或 123.45）")
        
        # 输入验证循环 - 货币类型部分
        while True:
            currency_type = input("请选择货币类型（USD/CNY）: ").strip().upper()
            if currency_type in ('USD', 'CNY'):
                break
            print("错误：货币类型只能输入 USD 或 CNY（大写）")
        
        # 汇率计算与输出
        if currency_type == 'USD':
            converted = amount * USD_TO_CNY_RATE
            print(f"\n{amount:.2f} 美元 = {converted:.2f} 人民币")
        elif currency_type == 'CNY':
            converted = amount * CNY_TO_USD_RATE
            print(f"\n{amount:.2f} 人民币 = {converted:.2f} 美元")
        
        # 继续兑换判断
        while True:
            choice = input("\n是否继续兑换？(Y/N): ").strip().upper()
            if choice == 'N':
                print("\n感谢使用，再见！")
                return
            if choice == 'Y':
                print("\n" + "=" * 30)
                break
            print("错误：请输入 Y 或 N")

if __name__ == "__main__":
    print("使用说明：")
    print("1. 本程序支持美元(USD)与人民币(CNY)双向兑换")
    print("2. 输入金额时请使用数字（支持小数）")
    print("3. 货币类型需严格使用USD或CNY的大写形式")
    print("4. 输入Q可随时退出程序\n")
    main()
